Amazon Q BusinessからSalesforceに接続してデータソースとして利用する

Amazon Q BusinessからSalesforceに接続してデータソースとして利用する

Clock Icon2024.12.11

Amazon Q Businessは、企業向けに設計されたAIアシスタントサービスで、以下のような機能を提供します。

  • 自然言語による対話
  • 多様なデータソース連携
  • アプリケーション作成
  • セキュリティ機能
  • プラグイン連携
  • 多様なファイル形式対応

https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/what-is.html

社内の様々な情報源から統合的に情報を取得し、質問に答えることができるようになります。

今回は手始めにSalesforceを接続して、質問に対する答えを確認してみます。

料金体系

https://aws.amazon.com/jp/q/business/pricing/

サブスクリプション料金、インデックスの料金 での課金があります。

Salesforceに接続するための前提条件

Amazon Q Businessアプリケーションを作成しているものとします。

  • indexの作成
  • データソースの IAM ロールを作成
  • Salesforce Online 認証情報を保存するためのAWS Secrets Manager

Salesforceでは、

  • Salesforce への接続に使用するアカウントに関連付けられた Salesforce セキュリティトークン
  • OAuth が有効化された Salesforce接続アプリケーション
    これらが必要となります。

Salesforceは今回のお試し用にhttps://developer.salesforce.com/signup で Salesforce Online インスタンスを作成しておきます。

https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/salesforce-overview.html

接続を作ってみる

index作成

indexは、接続したデータソースからコンテンツを保存し、取得するものです。

Amazon Q Business のコンソールにある左のナビゲーション・メニューから、Data sourcesを選択します、

スクリーンショット 2024-12-10 14.23.32

そのページ内でadd indexをクリックします。

スクリーンショット 2024-12-10 14.26.04

index名、Index provisioningの選択、ユニット数を決めて作成します。

Index provisioningは、Enterprise と Starterから選択しますが、本番環境の場合はEnterprise、その他はStarterにしておくのが無難そうです。

https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#index-tiers

ユニット数はStarterでは1~5、Enterpriseでは1~50まで設定できます。

1ユニットには次が含まれます。

  • 1か月あたり 100時間分のコネクタの使用
  • 20,000 件のドキュメントまたは 200 MB の抽出されたテキスト (いずれか早く達した方)

Salesforceで接続アプリケーションを作成する

Amazon Q Businessからデータを取得する用途のアプリケーションをSalesforce上に作成します。

https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/salesforce-credentials.html

スクリーンショット 2024-12-10 15.13.06

Salesforce Onlineのプロファイルメニューから、Salesforce OnlineのURLをコピーします。
これがAmazon QでホストURLとして入力するURLになります。

スクリーンショット 2024-12-10 15.20.10

設定画面のアプリケーション->アプリケーションマネージャーのページから新規接続アプリケーションをクリックします。

スクリーンショット 2024-12-10 15.22.14

接続アプリケーションを作成を選択します。

スクリーンショット 2024-12-10 15.24.46

接続アプリケーション作成画面で、まずは基本情報としてConnect App Name(接続アプリ名)、API Name(API名、Contact Email(連絡先メールアドレス)を入力します。

スクリーンショット 2024-12-10 15.29.50

API (OAuth 設定の有効化)で、設定を有効化し、以下の設定をします。

  • コールバックURL:https://login.salesforce.com/services/oauth2/token
  • 選択した OAuth 範囲:フルアクセス
  • すべてのトークンを調査:チェックをオンにする

その他のオプションはユースケースに応じて選択してください。
今回は最低限の設定で行いました。

保存ボタンを押して作成を終えます。

スクリーンショット 2024-12-10 15.57.58

作成したアプリケーションの編集ページで、

  • 許可されているユーザー: 全てのユーザーは自己承認可能
  • IP 制限の緩和:IP 制限の緩和
    にします。

スクリーンショット 2024-12-10 15.44.30

IDー>OAuth および OpenID Connect 設定 のページで
OAuth ユーザー名パスワードフローを許可、OAuth ユーザーエージェントフローを許可 をオンにします。

スクリーンショット 2024-12-10 16.09.47

接続アプリケーションを管理するページで、作成したアプリケーションを選択し、コンシューマーの詳細の管理 を選択します。

スクリーンショット 2024-12-10 16.14.07

生成ボタンを押して、コンシューマーキーとシークレットを作成し、適用します。
この2つは控えておきましょう。

Salesforceでセキュリティトークンのリセット

Amazon Q BusinessのSalesforce接続では、
OAuth 2.0 with Resource Owner Password Flow を使うのですが、
接続に使用するセキュリティトークンをリセットします。

スクリーンショット 2024-12-10 16.28.06

プロファイルの設定を選択します。

スクリーンショット 2024-12-10 16.29.23

セキュリティトークンのリセット をクリックします。
その後メールでセキュリティトークンが送られてくるので、控えておきます。

Amazon Qからデータソースを作成する

Salesforce Online に接続するために必要な情報は、

  • ホスト URL
  • ユーザ名
  • パスワード
  • セキュリティトークン
  • クライアント ID
  • クライアントシークレット
  • Salesforce Online を Amazon Q に接続するために必要な認証URL

です。これらは先ほどSalesforceで行った設定で全て取得できるようになっているはずです。

では実際に作成してみます。

スクリーンショット 2024-12-10 16.38.43

作成したAmazon Q Businessのアプリケーションの設定画面で、data sourceのメニューからadd data source をクリックします。

スクリーンショット 2024-12-10 16.43.50

検索からSalesforce Onlineのdata sourceを探し、選択します。

スクリーンショット 2024-12-10 16.46.23

Name and description で作成するデータソース名と説明(オプション)を記入します。

スクリーンショット 2024-12-10 16.52.42

Source ではSalesforceのホストURLを入力します。
※ Salesforce Onlineのプロファイルメニューから、Salesforce OnlineのURLをコピーしたやつ

スクリーンショット 2024-12-10 16.55.02

Authorization ではEnable ACLsを選択します。

※ Amazon Q Businessは、エンドユーザーがアクセスできるドキュメントからのみ応答が生成されるように、デフォルトでACL情報をクロールします。

スクリーンショット 2024-12-10 16.57.55

Authentication で AWS Secrets Managerのシークレットを新規作成し、以下の情報を入力します。

スクリーンショット 2024-12-10 16.59.18

  • Secret name: シークレットの名前
  • Username、Password、Security token、Consumer key、Consumer secret、およびAuthentication URL:Salesforce アカウントで作成した認証クレデンシャルの値を入力します。

Authentication URLはSalesforceの接続アプリケーションでOIDC設定のコールバックURLと同じものを入力します。

スクリーンショット 2024-12-10 16.43.50

IAM role は新規に作成する を選択して、自動的に作ってもらいます。

スクリーンショット 2024-12-10 17.10.52

Sync scope では。Salesforceのどのオブジェクトをクロールするの決めれます。
カスタムオブジェクトもクロールできるので、アプリケーションの仕様に応じて決めていきましょう。

スクリーンショット 2024-12-10 17.13.34

今回の接続では、その他の設定は何も変更しませんでした。

  • Maximum file size:Amazon Qがクロールするファイルサイズの上限をMB単位で指定します。 Amazon Qは定義したサイズ制限内のファイルのみをクロールします。 デフォルトのファイルサイズは50MBです。 最大ファイルサイズは0MB以上50MB以下とする。
  • Additional configuration:正規表現パターンを追加して、特定のファイルを包含または除外したりできます

スクリーンショット 2024-12-10 17.18.09

Sync modeでは、データソースのコンテンツが変更された際にインデックスを更新する方法を選択します。

  • Full sync - 以前の同期ステータスに関係なく、全てのコンテンツを同期します。
  • New or modified content sync - 新規および変更されたドキュメントのみを同期します。
  • New, modified, or deleted content sync - 新規、変更、削除されたドキュメントのみを同期します。

スクリーンショット 2024-12-10 17.20.42

Sync run scheduleでは、Amazon Qとデータソースを同期する頻度を選択します

スクリーンショット 2024-12-10 17.21.51

https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/connector-concepts.html#connector-field-mappings

Field mappings では、Amazon Q Businessがコンテンツをクロールできるように、データソースからフィールドをマッピングします。 また、カスタムフィールドを追加することもできます。

※ フィールド・マッピングの変更とカスタム・フィールドの追加は、アプリケーションとリトリーバの作成後に利用できるようになります

最後に add data sourceをクリックして作成を完了します。

データ同期を行う

今回はオンデマンドで同期を行う設定にしたので、手動で行ってみます。

スクリーンショット 2024-12-10 17.30.13

作成したデータソースのページからsync nowをクリックします。

スクリーンショット 2024-12-10 17.37.14

接続の設定がただしければ同期が正常終了します。

エラーの場合、メッセージが表示されるので、それに従って一つづつ調べていくしかありません。

シークレットに保存したAuthentication URLに対して以下のページに書かれているリクエストを行なってアクセストークンが帰って来れば、同期も成功するはずです。
Request an Access Token

アプリケーションで動作を確認する

スクリーンショット 2024-12-11 9.20.42

アプリケーションの詳細ページにあるWeb experience settingsのDeployed URLにアクセスします。

ログイン後、アクセスポータルというページにリダイレクトされます。
※ IAM Identity Center認証しています。

スクリーンショット 2024-12-11 9.24.54

作成したAmazon Q Businessのアプリケーションを選択してアクセスします。

スクリーンショット 2024-12-11 9.32.34

このようなチャットアプリです。
Company knowledge` が選択されている状態で質問をすると、データソースを参照して答えが返ってくるようです。

スクリーンショット 2024-12-11 10.26.08

スクリーンショット 2024-12-11 10.29.17

Salesforceのオブジェクトのタイトルに登録されていれば正しい答えをソースの情報とともに返してくれました。

スクリーンショット 2024-12-11 10.36.25

スクリーンショット 2024-12-11 10.37.55

オブジェクトの関連フィールドに関する質問や、全体件数などは答えられなかったです。

スクリーンショット 2024-12-11 11.00.31

Metadata controlsという機能で、Amazon Q Businessインデックスにメタデータを追加してマッピングすることができるので、これを行なったところ、

スクリーンショット 2024-12-11 11.02.33

このようにタイトル以外の属性での質問に対する答えが返ってくるようになりました。

メタデータコントロール機能を使用して、Amazon Q Businessインデックスにメタデータを追加してマッピングすることができます。 メタデータをインデックスフィールドにマッピングすることで、検索精度を高め、エンドユーザーの検索体験をカスタマイズすることができます

今回はAmazon Q Businessの細かな設定までは踏み込めていませんが、色々と調整することができるので今後試していこうと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.